home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mission 3
/
Mission 3.zip
/
Mission 3.iso
/
zugabe
/
va45
/
visual45
/
library
/
extend
/
wfcutpst.s
< prev
next >
Wrap
Text File
|
1998-03-20
|
5KB
|
196 lines
;------------------------------------------------------------------------------
; Method name : GWVA_METHOD_WIND_CLIPBOARD_COPY
; Asm label : GWVA_WFORM_PRG_CLIPBOARD_COPY
; Description : Méthode effectuant la copie du champ de texte éditable dans le
; clipboard GEM
;
; in : a0.l = pointeur sur l'objet fenêtre
; out : d6.w = GWVA_PRGRET_CONSUMED
;
; 19/03/98 : Création
;------------------------------------------------------------------------------
GWVA_WFORM_PRG_CLIPBOARD_COPY:
; rajouter BEFORE et AFTER
bftst GWVA_WIND_OBJ_PROPERTIES(a0){GWVA_WIND_OLBIT_CTRLC:1}
beq.s .pas_de_ctrlc_possible
ifd MDL_FORM_EDITABLE_TEXT
tst.w GWVA_WFORM_OBJ_FOCUSED_IDX(a0)
bmi .pas_de_texte_editable_dans_fenetre
save.l a0
bsr GWVA_CLIPB_CLEAR_CLIPBOARD
load.l a0
cmp.w #GWVA_NO_ERROR_GENERIC,d7
bne.s .erreur_de_clipboard
move.w GWVA_WRSC_OBJ_TREE(a0),d0
move.w GWVA_WFORM_OBJ_FOCUSED_IDX(a0),d1
save.l a0
bsr GWVA_RSC_COUNT_TEXT_OBJ_LENGTH ; -> d0.l = taille texte, a0.l pointeur sur le texte
move.l #'TXT'*256,d1
bsr GWVA_CLIPB_COPY
load.l a0
move.w #GWVA_NO_ERROR_GENERIC,d7
.erreur_de_clipboard:
move.w #GWVA_PRGRET_CONSUMED,d6
rts
.pas_de_texte_editable_dans_fenetre:
.pas_fenetre_formulaire:
endc ; ifd MDL_FORM_EDITABLE_TEXT
.pas_de_ctrlc_possible:
move.w #GWVA_ERROR_GENERIC,d7
move.w #GWVA_PRGRET_CONSUMED,d6
rts
;------------------------------------------------------------------------------
; Method name : GWVA_METHOD_WIND_CLIPBOARD_CUT
; Asm label : GWVA_WFORM_PRG_CLIPBOARD_CUT
; Description : Méthode effectuant la copie du champ de texte éditable dans le
; clipboard GEM et effaçant ce champ texte
;
; in : a0.l = pointeur sur l'objet fenêtre
; out : d6.w = GWVA_PRGRET_CONSUMED
; out : d7.w = GWVA_NO_ERROR_GENERIC ou erreur
;
; 19/03/98 : Création
;------------------------------------------------------------------------------
GWVA_WFORM_PRG_CLIPBOARD_CUT:
; rajouter BEFORE et AFTER
bftst GWVA_WIND_OBJ_PROPERTIES(a0){GWVA_WIND_OLBIT_CTRLX:1}
beq.s .pas_de_ctrlx_possible
GWVA_CALL_METHOD #GWVA_METHOD_WIND_CLIPBOARD_COPY,#GWVA_MODE_SEARCH_EXEC_UNIQUE
* cmp.w #GWVA_NO_ERROR_GENERIC,d7
* bne.s .erreur_de_clipboard
ifd MDL_FORM_EDITABLE_TEXT
tst.w GWVA_WFORM_OBJ_FOCUSED_IDX(a0)
bmi .pas_de_texte_editable_dans_fenetre
move.w GWVA_WRSC_OBJ_TREE(a0),d0
move.w GWVA_WFORM_OBJ_FOCUSED_IDX(a0),d1
save.l a0
bsr GWVA_RSC_RETURN_PTR_ON_TEXT
clr.b (a1)
load.l a0
fail ; Comment je fais ici ?
move.l GWVA_WIND_OBJ_SPEC_PTR(a0),a1
move.w #0,d0
move.w #7,d1
clr.w d2
bsr GWVA_FORM_WIND_OBJ_PRG_REDRAW_PART
move.w #GWVA_NO_ERROR_GENERIC,d7
.erreur_de_clipboard:
move.w #GWVA_PRGRET_CONSUMED,d6
rts
.pas_de_texte_editable_dans_fenetre:
.pas_fenetre_formulaire:
endc ; ifd MDL_FORM_EDITABLE_TEXT
.pas_de_ctrlx_possible:
move.w #GWVA_ERROR_GENERIC,d7
move.w #GWVA_PRGRET_CONSUMED,d6
rts
;------------------------------------------------------------------------------
; Method name : GWVA_METHOD_WIND_CLIPBOARD_CUT
; Asm label : GWVA_WFORM_PRG_CLIPBOARD_CUT
; Description : Méthode effectuant la copie du champ de texte éditable dans le
; clipboard GEM et effaçant ce champ texte
;
; in : a0.l = pointeur sur l'objet fenêtre
; out : d6.w = GWVA_PRGRET_CONSUMED
; out : d7.w = GWVA_NO_ERROR_GENERIC ou erreur
;
; 19/03/98 : Création
;------------------------------------------------------------------------------
GWVA_WFORM_PRG_CLIPBOARD_PASTE:
; rajouter BEFORE et AFTER
bftst GWVA_WIND_OBJ_PROPERTIES(a0){GWVA_WIND_OLBIT_CTRLV:1}
beq .pas_de_ctrlv_possible
ifd MDL_FORM_EDITABLE_TEXT
tst.w GWVA_WFORM_OBJ_FOCUSED_IDX(a0)
bmi .pas_de_texte_editable_dans_fenetre
save.l a0
move.l #'TXT'*256,d0
move.w #MX_PREFTTRAM,d1
bsr GWVA_CLIPB_PASTE_IN_MEM
move.l a0,a2
load.l a0
cmp.w #GWVA_NO_ERROR_GENERIC,d7
bne.s .erreur_lecture_clipboard
tst.l d0
beq.s .fichier_scrap_nul
save.l d0/a0/a2
move.w GWVA_WRSC_OBJ_TREE(a0),d0
move.w GWVA_WFORM_OBJ_FOCUSED_IDX(a0),d1
bsr GWVA_RSC_RETURN_PTR_ON_OBJ ; -> objet texte éditable pointé par a1
load.l d0/a0/a2
move.w GWVA_WFORM_OBJ_FOCUSED_IDX_CURSOR_POS(a0),d1
move.l d0,d2
save.l a0-a2
move.l a1,a0
fail ; Manque encore une routine
.insertion_du_clipboard:
move.b (a2)+,d0
beq.s .pas_insertion_0
save.l d2/a2
move.w #2,d2 ; mode normale d'insertion
bsr GWVA_WFORM_OBJ_PRG_INSERT_CHAR_IN_EDITABLE_TEXT
load.l d2/a2
move.w d0,d1 ; nouvelle position curseur
.pas_insertion_0:
sub.l #1,d2
bne.s .insertion_du_clipboard
movem.l (sp),a0-a2
MFREE a2
load.l a0-a2
fail ; Comment je fais ici ?
move.l GWVA_WIND_OBJ_SPEC_PTR(a0),a1
move.w #0,d0
move.w #7,d1
clr.w d2
bsr GWVA_FORM_WIND_OBJ_PRG_REDRAW_PART
move.w #GWVA_NO_ERROR_GENERIC,d7
move.w #GWVA_PRGRET_CONSUMED,d6
rts
.fichier_scrap_nul:
.erreur_lecture_clipboard:
.pas_de_texte_editable_dans_fenetre:
.pas_fenetre_formulaire:
endc ; ifd MDL_FORM_EDITABLE_TEXT
.pas_de_ctrlv_possible:
move.w #GWVA_ERROR_GENERIC,d7
move.w #GWVA_PRGRET_CONSUMED,d6
rts